Packet communication method, communication system, communication apparatus, communication program and recording medium containing communication program

ABSTRACT

To transmit a packet to be transmitted, a transmitting station specifies information indicating an expiration time for the packet. Upon receiving the packet, a receiving station analyzes the expiration time information to output data to the upper layer based on the information. This enables more efficient transmission while following the Strict Order, in a transmission/receipt system where realtime data is transfer using a collective DELAYED-ACK returned instead of ACKs for multiple packets.

TECHNICAL FIELD

[0001] The present invention relates to, among others, a packet communications method, communications system, and communications device which, in packet transmission/receipt, manages expiration time for data in the packet.

BACKGROUND ART

[0002] The IEEE 802.11 wireless LAN communications standard (in compliance with ANSI/IEEE Std. 802.11, 1999 Edition) specifies that in the MAC Layer, data packets are output to the upper layer in the receiving station in the same order as their transmissions (Strict Order). According to the IEEE 802.11 standard, Sequence Numbers, given sequentially to all transmitted data packets, are contained in the headers of the data packets so that the data packets are uniquely identified. The Sequence Numbers are used for the following process: Having receives a data packet from the transmitting station, the receiving station returns an acknowledge (Ack) to the transmitting station so that the transmitting station checks the Ack for the data packet. After checking the Ack, the transmitting station starts the transmission of a next data packet.

[0003] Under these circumstances, if there is a data packet for which the transmitting station has failed to receive an Ack from the receiving station, the transmitting station transmits that data packet again to the receiving station. The packet is discarded by the receiving station if the receiving station has previously received a packet having the same Sequence Number.

[0004] If the receiving station cannot receive the data packet after the transmitting station's repeated attempts, the transmitting station gives up transmitting it and starts to transmit a next data packet. This results in discontinuous data packets, hence, discontinuous Sequence Numbers, being received by the receiving station. Still, the Strict Order is regarded as being followed, because none of the Sequence Numbers are transposed. Upon receiving the data packet, the receiving station outputs data in the data packet to the upper layer.

[0005] Lately, there is increasing demand for wireless transmission of video, audio, and other realtime data. To transmit realtime data, data packets must be transmitted within a certain delay time. It is therefore preferred if attention is paid to the transmission expiration time for each data packet in the MAC Layer. This is because if only the upper layer knows the transmission expiration time for each data packet, whereas the MAC Layer does not, the MAC Layer keeps repeating the transmission of a data packet even after the expiration time of that packet, reducing effective data transmission efficiency.

[0006] Taking these facts into consideration, the IEEE 802.11e standard, an extension to 802.11 (in compliance with IEEE Std 802.11e/D1, March 2001), defines that in the MAC Layer, each packet has a transmission expiration time termed a lifetime. The lifetime indicates how long the data will be stored in the transmitting station. The countdown of the lifetime starts when the transmitting station inputs data from the upper layer to the MAC Layer. The data packet out of lifetime is discarded by the transmitting station without prior notice to the receiving station. The transmitting station never retransmits the data after that, even if the receiving station has not successfully received it. All packets are at default set to have an equal lifetime in typical systems.

[0007] In realtime data transmissions error correction code is often used to restrain the number of retransmissions per unit time. A drawback to this approach is that error correction decoding takes so much time that an Ack cannot be returned immediately. A technique addressing the problem is suggested where acknowledges for a set of data packets are collectively transmitted in a single packet termed a DELAYED-ACK.

[0008] A DELAYED-ACK contains a bitmap in which one bit is assigned to each Sequence Number of successive data packets. The data receiving station sets the bit to 1 if the station has successfully received the data packet identified by the Sequence Number. The receiving station returns to the transmitting station a DELAYED-ACK prepared this way, inclusive of information on the first one of the Sequence Numbers of the data packets for which an acknowledge is to be returned and on the number of acknowledges contained.

[0009] The DELAYED-ACK entails following problems, for example, when used in a video, audio, or other realtime data transmission where the receiving station receives data packets as described in the foregoing in a different sequence from that in which the transmitting station transmitted the packets. When this happens, the receiving station sends a data packet retransmission request, and does not output received data packets to the upper layer, but buffers them so as to follow the Strict Order. The receiving station may therefore fail to obtain expiration time for the received data packets and determine up to when the received data packets should be output to the upper layer. In other words, attempts to follow the Strict Order possibly result in expiration of the received data packets. The data packets are wasted.

[0010]FIG. 13 illustrates an example of the data packet flow in such cases. The data packet is transferred from the transmitting station upper layer to the transmitting station MAC Layer, then the receiving station MAC Layer, and the receiving station upper layer. An example is shown by packets 701 a, 701 b, 701 c, 701 d in the figure demonstrating the transfer of a data packet 1 from one layer to another. For example, as to the data packet 1, the packet 701 a is input from the upper layer to the MAC Layer; then, in the MAC Layer, the packet 701 b is transmitted at a timing determined by the protocols. The receiving station determines whether the packet 701 c has been successfully received before outputting it to the upper layer as the packet 701 d.

[0011] Each data packet has an expiration time, set to a certain value, for the time taken from the input from the transmitting station upper layer to the output to the receiving station upper layer. For example, the data packet 1 must reach the receiving station upper layer by an expiration time 701 e shown in FIG. 13. After the expiration time, the data packet is discarded by the transmitting station without notifying the receiving station. Thereafter, no retransmission will be made in response to a retransmission request from the receiving station.

[0012] The expiration times 701 e, 702 e, 704 e, 706 e, 707 e for the data packets 1, 2, 4, 6, 7 in FIG. 13 are estimates calculated by the receiving station according to an equation: Expiration Time=Time of First-time Packet Receipt+Lifetime. The expiration time 704 e is for a retransmitted data packet and does not match the expiration time at the transmitting end.

[0013] Still referring to FIG. 13, the packet 703 c for the data packet 3 is shown to have not been received by the receiving station for some reason or have not been successfully received due to an error in the data in the data packet.

[0014] The MAC Layer of the receiving station records whether data packets have been successfully received and transmits DlyAcks 710, 711 corresponding to a DELAYED-ACK when the received data packets has reached a certain number. The DlyAck 710 notifies that the packet 701 c corresponding to the data packet 1 and the packet 702 c corresponding to the data packet 2 have been successfully received. Upon receipt of the DlyAck 710, the MAC Layer of the transmitting station determines that the receiving station has not received the packet 703 b corresponding to the data packet 3 and the packet 704 b corresponding to the data packet 4. The packets are retransmitted as packets 703 b 1, 704 b 1.

[0015] Similarly, the DlyAck 711 notifies the transmitting station that the receiving station has successfully received packets except the packet 703 b corresponding to the data packet 3 and the packet 705 b corresponding to the data packet 5. Upon receipt of the DlyAck 711, the transmitting station retransmits the packet 705 b 1 corresponding to the data packet 5 based on the DlyAck 711, but not the packet 703 b corresponding to the data packet 3, because the transmitting station knows that the expiration time for the data packet 3 has already past.

[0016] The receiving station outputs received data packets, e.g., the packets 701 d, 702 d, to the upper layer provided that the Strict Order is followed. On the other hand, if the Strict Order is not followed, in other words, if there is a data packet yet to be successfully received bearing a smaller number than a newly received data packet, the received data packet is buffered. In this example, the data packet 3 has not reached the MAC Layer of the receiving station. The packet 704 c corresponding to the data packet 4, the packet 705 c corresponding to the data packet 5, the packet 706 c corresponding to the data packet 6, and the packet 707 c corresponding to the data packet 7, although successfully received by the receiving station, are buffered in the MAC Layer of the receiving station until the packet 703 c corresponding to the data packet 3 is received.

[0017] If the packet 703 b corresponding to the data packet 3 is not successfully transferred to the receiving station before the expiration time for the data packet 3, the packet 703 b corresponding to the data packet 3 is discarded by the transmitting station as mentioned earlier; the receiving station needs to determine one way or the other when to give up receiving the packet 703 d corresponding to the data packet 3.

[0018] In this example, the transmitting station must have transmitted the packet 703 b corresponding to the data packet 3 before the packet 704 b corresponding to the data packet 4. Accordingly, the expiration time for the data packet 3 is reasonably estimated to come before the time of receiving the packet 704 c 1 corresponding to the data packet 4, plus the lifetime. However, the expiration time for a data packet is a time starting when the data packet is input from the upper layer to the MAC Layer in the transmitting station. The receiving station alone can at best estimate an expiration time for each data packet, let alone know the exact expiration time. There is a problem especially worth mentioning here: In the example, the packet 704 c 1 corresponding to the data packet 4 is successfully received by the receiving station in the second transmission, not in the first transmission, of the packet 704 b corresponding to the data packet 4 from the transmitting station. The transmitting station is set to automatically retransmit a data packet if it does not receive an Ack in a certain period of time. Therefore, if the expiration time 3 for the packet 703 d corresponding to the data packet 3 is determined based on the estimate, the receipt of the packet 703 d corresponding to the data packet 3 is awaited in some cases even after the expiration time is past for the packets following the packet 704 d corresponding to the data packet 4; when the successful received data packets following the packet 704 d corresponding to the data packet 4 are output to the upper layer, they are no longer valid.

[0019] Video and other realtime data is transmitted using, for example, MPEG2-TS specifying that time information is added to the data packet by an encoder upon the generation of the packet. To reproduce MPEG2-TS data packets, a decoder is used to recover the time information based on which the reproduction is carried out.

[0020] The time information according to MPEG2-TS is added for use in the encoder and the decoder. The time information is based on a different clock from the one for the time information used in the communication path (MAC Layer). It is therefore difficult to apply the time information added in MPEG2-TS to determine the expiration time for data packets in the communication path. In some cases, TS packets are merged or divided in transmission to facilitate communications. Conventional art does not consider adding expiration time information to those merged/divided packets.

[0021] Conceived to address the problems, the present invention has an objective to offer a packet communications method, communications. system, communications device, communications program, and storage medium containing the communications program, which allows for more accurate knowledge of packet expiration times for efficiency-improved transmission following the Strict Order.

DISCLOSURE OF INVENTION

[0022] In order to solve the problems, a packet communications method in accordance with the present invention is characterized in that it includes the step of transmitting a packet containing expiration time information for the packet or for a body of the packet either in the body or in a header of the packet.

[0023] Another packet communications method in accordance with the present invention is characterized in that it includes the step of, when receiving a packet containing expiration time information for the packet or for a body of the packet either in the body or in a header of the packet, determining an expiration time for the packet based on the expiration time information.

[0024] According to the method, the expiration time information for the packet or its body is contained in the transmitted/received packet header or body. A receiving station, having received such a packet, can know the expiration time for the packet corresponding to the expiration time information more precisely by analyzing the expiration time information in the packet. Received packets are therefore not wasted due to expiration. The Strict Order is efficiently realized.

[0025] A communications system in accordance with the present invention is a communications system including a transmitting station transmitting packets and a receiving station receiving packets, and is characterized in that the transmitting station includes:

[0026] packet generating means for converting data to be transmitted to a predetermined packet;

[0027] expiration time calculating means for calculating an expiration time for at least part of data in the packet; and

[0028] expiration time appending means for appending expiration time information on the expiration time to the packet, and

[0029] the receiving station includes expiration time determining means for determining expiration time for the packet on the basis of the expiration time information in a received packet.

[0030] According to the arrangement, first, in the transmitting station, expiration time information on an expiration time for at least part of data in a packet to be transmitted is appended to the packet, and a packet containing the expiration time information is transmitted to the receiving station. Having received such a packet, the receiving station determines the expiration time of the packet on the basis of the expiration time information in the packet. The receiving station can thereby know the expiration time for the received packet more precisely. Received packets are therefore not wasted due to expiration. The Strict Order is efficiently realized.

[0031] Another communications system in accordance with the present invention is a communications system including a transmitting station transmitting packets and a receiving station receiving packets, and is characterized in that

[0032] the transmitting station includes:

[0033] packet generating means for converting data to be transmitted to a predetermined packet;

[0034] expiration time calculating means for calculating an expiration time for at least part of data in the packet; and

[0035] expiration time packet generating means for generating an expiration time information packet containing expiration time information on the expiration time and identity information for data corresponding to the expiration time information, and

[0036] the receiving station includes expiration time determining means for determining expiration time for a received packet on the basis of the expiration time information in a received expiration time information packet.

[0037] According to the arrangement, first, the transmitting station generates an expiration time information packet containing expiration time information on the expiration time and identity information for data corresponding to the expiration time information, and transmits the expiration time information packet to the receiving station. Upon receiving the expiration time information packet, the receiving station determines expiration time for the packet received so far, on the basis of the expiration time information and identity information in the expiration time information packet. The receiving station can thereby know the expiration time for the received packet more precisely. Received packets are therefore not wasted due to expiration. The Strict Order is efficiently realized.

[0038] A communications device in accordance with the present invention is a communications device connected to a communications system, and is characterized in that it includes:

[0039] a transmission buffer buffering incoming transmitted data;

[0040] a timer managing time;

[0041] a generator generating an expiration time for a packet to be transmitted in the form of a time stamp;

[0042] a packet processor packetizing the data to be transmitted and the time stamp; and

[0043] a protocol controller transmitting the packet generated by the packet processor.

[0044] According to the arrangement, the time stamp generator generates an expiration time for a packet to be transmitted in the form of a time stamp; the packet processor packetizes the data to be transmitted and the time stamp; and the protocol controller transmits the packet to the receiving station. Having received such a packet, the receiving station can know the expiration time for the packet corresponding to the expiration time information more precisely by analyzing the expiration time information in the packet. Received packets are therefore not wasted due to expiration. The Strict Order is efficiently realized.

[0045] Another communications device in accordance with the present invention is a communications device connected to a communications system, and is characterized in that it includes:

[0046] a protocol controller receiving a packet from an external communications device;

[0047] a packet processor dividing the received packet into received data and a time stamp and associating the data and the stamp;

[0048] a receipt buffer buffering the received data; and

[0049] a time stamp analyzer analyzing the time stamp so as to instruct for an output of the received data from the receipt buffer to an upper layer when an output time for the received data corresponding to the time stamp has come.

[0050] According to the arrangement, the protocol controller receives a packet; the packet processor extracts received data and a time stamp from the received packet; and the time stamp analyzer analyzes the time stamp so as to instruct for an output of the received data from the receipt buffer to an upper layer when an output time for the received data corresponding to the time stamp has come. The receiving station can thereby know the expiration time for the received packet more precisely. Received packets are therefore not wasted due to expiration. The Strict Order is efficiently realized.

[0051] To describe the expiration time in absolute time, a mechanism is needed to synchronize the clock for the transmitting station and the receiving station. The mechanism is readily incorporated, because in the receiving station, the packet only needs to be output to the upper layer immediately before a designated time.

[0052] To describe the expiration time in relative time, an expiration time needs to be counted for each received packet. Such a mechanism is incorporated without a mechanism synchronizing the clock for the transmitting station and the receiving station.

[0053] The expiration time can be described using a variable, in which case, time management becomes unnecessary for each packet.

[0054] Additional objects, advantages and novel features of the invention will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention.

BRIEF DESCRIPTION OF DRAWINGS

[0055]FIG. 1 is a block diagram schematically showing the arrangement of a transmitter device in accordance with an embodiment of the present invention.

[0056]FIG. 2 shows a data packet format as an example.

[0057]FIG. 3 shows another example of a data packet format.

[0058]FIG. 4 shows, as an example, a data packet flow in a transmission by the transmitter device.

[0059]FIG. 5 shows another example of a data packet flow in a transmission by the transmitter device.

[0060]FIG. 6 shows, on a horizontal axis representing absolute time, a time when a data packet is input from a transmitting station upper layer to the MAC Layer, a time when the data packet is transmitted from the transmitting station MAC Layer for the first time, a time when the data packet is transmitted from the transmitting station MAC Layer for the second time, and the expiration time of the data packet.

[0061]FIG. 7 shows, as an example, an expiration time information specifying method.

[0062]FIG. 8 is a flow chart illustrating the process of specify an expiration time.

[0063]FIG. 9 shows another example of an expiration time information specifying method.

[0064]FIG. 10 is a flow chart illustrating the process of transmitting expiration time information.

[0065]FIG. 11 shows, as an example, a data packet flow when an expiration time information packet is transmitted from a receiving station to a transmitting station.

[0066]FIG. 12 is a flow chart illustrating a process at the receiving station when the expiration time information packet is transmitted from the receiving station to the transmitting station.

[0067]FIG. 13 shows, as an example, a conventional data packet flow.

BEST MODE FOR CARRYING OUT THE INVENTION

[0068] (Embodiment 1)

[0069] The following will describe an embodiment of the present invention with reference to figures.

[0070] In the present embodiment, expiration time information is expressed in absolute time. Each data packet, when transmitted from a transmitting station to a receiving station, contains expiration time information.

[0071]FIG. 1 is a block diagram schematically illustrating the arrangement of a transmitter device in accordance with the present embodiment. Referring to the figure, the transmitter device includes: a receipt buffer 101, a timer 102, a time stamp analyzer 103, a transmission buffer 104, a time stamp generator 105, a packet processor 106, and a protocol controller 107. The transmitter device provides a MAC Layer according to the IEEE 802.11 wireless communications standard (in compliance with ANSI/IEEE Std. 802.11, 1999 Edition). In other words, the transmitter device provides a MAC Layer in the data packet transmitting and receiving stations.

[0072] First, the foregoing elements will be described in terms of operation in the transmitting station. The time stamp generator 105 is a block calculating an expiration time, in the receiving station, of data fed from the upper layer according to an equation: Time of Input from Upper Layer+Lifetime. The section 105 then sets a data packet expiration time recorded using a time stamp (detailed later) to the calculated result. FIG. 6 shows how to calculate data packet expiration times. The period identified by 601 in the figure corresponds to a lifetime. The data packet expiration time is recorded using a time stamp.

[0073] The generated data packet expiration time and the data input from the upper layer are transferred to a transmission buffer 104 in association with each other. When time has arrived to transmit the data from the transmission buffer 104, the packet processor 106 generates data packets based on the data held by the transmission buffer 104.

[0074]FIGS. 2, 3 show data packet format examples. In these format examples, each data packet is made up of a header and a body consisting of data of a MAC Layer. In the format example in FIG. 2, a time stamp field 201 is provided in the body. The time stamp field 201 may be flanked by other fields in the body. Meanwhile, in the format example in FIG. 3, a time stamp field 301 is provided in a field in the MAC header. The time stamp field, whether provided as in FIG. 2 or FIG. 3, produces no substantial differences in operation.

[0075] The data packet generated by the packet processor 106 in this manner is output to the lower layer and sent out in accordance at a timing defined by the protocol under the control of the protocol controller 107.

[0076] Next, the elements will be described in terms of operation in the receiving station. A data packet is input from the lower layer to the protocol controller 107. The data packet is then separated into a time stamp segment and a data segment by the packet processor 106. The time stamp segment is transferred to the time stamp analyzer 103. The data segment is transferred to the receipt buffer 101.

[0077] The time stamp analyzer 103 monitors the timer 102. Some time before the expiration time of the received data, the section 103 instructs the receipt buffer 101 to output the corresponding data stored in the buffer 101 to the upper layer.

[0078] The transmitting station does not transmits, to the receiving station, data which has already expired or which is likely to expire after receipt by the receiving station. The receiving station, if having failed to receive correct data by expiration time, may suspend retransmission requests to the transmitting station or notifies the upper layer that the data has not correctly been received.

[0079] A data packet flow example in a transmission involving the transmitter device is shown in FIG. 4. The expiration times (401 e, 402 e, 404 e, 405 e, 406 e, 407 e in the figure) for the data packets specified in the receiving station upper layer are determined with reference to expiration time information transferred from the transmitting station to the receiving station. Therefore, the expiration times for the data packets specified by the transmitting station match those specified by the receiving station.

[0080] In FIG. 4, the data packet is transferred from a transmitting station upper layer to the transmitting station MAC Layer, then the receiving station MAC Layer, and the receiving station upper layer. An example of the layer-to-layer transfer of the data packet 1 is shown by a packet 401 a in the transmitting station upper layer, a packet 401 b in the transmitting station MAC Layer, a packet 401 c in the receiving station MAC Layer, and a packet 401 d in the receiving station upper layer.

[0081] For example, as to the data packet 1, the packet 401 a in the transmitting station upper layer is input to the transmitting station MAC Layer. In the transmitting station MAC Layer, the packet 401 b in the transmitting station MAC Layer is transmitted to the receiving station at a transmission timing according to the protocol. The receiving station determines whether the packet 401 c has been successfully received in the receiving station MAC Layer, and if so, outputs the packet 401 d to the receiving station upper layer.

[0082] Each data packet has an expiration time set to a certain value for the time taken by the packet from the input to the transmitting station MAC Layer to the output to the receiving station upper layer. For example, the data packet 1 is should be output to the receiving station upper layer before the expiration time 401 e which is recognizable to both the transmitting station and the receiving station. Expired data is discarded by the transmitting station without notifying the receiving station, and never retransmitted thereafter in response to a retransmission request from the receiving station.

[0083] In FIG. 4, the packet 403 c corresponding to the packet 3 in the receiving station MAC Layer is shown to have not been received by the receiving station MAC Layer for some reasons or have not been successfully received due to an error in the data in the data packet (failed receipt). The receiving station MAC Layer records whether data packets have been successfully received and transmits DlyAcks 410, 411 corresponding to a DELAYED-ACK to the transmitting end when the received data packets has reached a certain number. The DlyAck 410 notifies that the packet 401 c corresponding to the data packet 1 and the packet 402 c corresponding to the data packet 2 have been successfully received by the receiving station MAC Layer.

[0084] Upon receipt of the DlyAck 410, the transmitting station MAC Layer determines that the receiving station has not successfully received the packet 403 b corresponding to the data packet 3 and the packet 404 b corresponding to the data packet 4, both transmitted from the transmitting station MAC Layer. The transmitting station MAC Layer transmits to the receiving station the packets 403 b 1, 404 b 1 corresponding respectively to the data packets 3, 4 which have not successfully been received.

[0085] Similarly, the DlyAck 411 indicates that the receiving station has up to the time successfully received packets except the packet 403 b 1 corresponding to the data packet 3 and the packet 405 b corresponding to the data packet 5 in the transmitting station MAC Layer. Upon receipt of the DlyAck 411, the transmitting station retransmits the packet 405 b 1 corresponding to the data packet 5 in the transmitting station MAC Layer. The transmitting station retransmits the packet 405 b 1 corresponding to the data packet 5, but not the packet 403 b 1 corresponding to the data packet 3 in the transmitting station MAC Layer, because the transmitting station knows that the expiration time for the data packet 3 has already past.

[0086] The receiving station records successfully received data packets in the receipt buffer 101. The receiving station MAC Layer monitors the timer in reference to the expiration times for the data packets and outputs the packet 401 d corresponding to the data packet 1, the packet 402 d corresponding to the data packet 2, the packet 404 d corresponding to the data packet 4, the packet 405 d corresponding to the data packet 5, the packet 406 d corresponding to the data packet 6, the packet 407 d corresponding to the data packet 7 to the upper layer before the expiration times for the packets pass.

[0087] As in the foregoing, the use of the transmitter device in accordance with the present embodiment in providing the transmitting station MAC Layer and the receiving station MAC Layer prevents the receiving station from keep waiting for an unreceived data packet which has, in terms of Sequence Number, been transmitted before successfully received data packets. This ensures that the receiving station outputs data packets to the upper layer before expiration times while following the Strict Order.

[0088] (Embodiment 2)

[0089] The following will describe another embodiment of the present invention with reference to figures. Here, for convenience, features of the present embodiment that have similar functions as features of the foregoing embodiment, and that were mentioned in that embodiment are indicated by the same reference numerals and description thereof is omitted.

[0090] The present embodiment will present an example of data packets being output from the receiving station MAC Layer to the receiving station upper layer at different timings from those in embodiment 1. Refer to FIG. 5 for the packet flow example for the present embodiment.

[0091] The data flow from the transmitting station upper layer to the receiving station MAC Layer is identical to that described in embodiment 1 with reference to FIG. 4. In the present embodiment, however, the MAC Layer of the receiving station outputs a received data packet to the upper layer immediately after the receipt of the packet, so long as the Strict Order is being followed.

[0092] In the specific example in FIG. 4, upon receipt the packet 501 c corresponding to the data packet 1, the packet 502 c corresponding to the data packet 2, the packet 505 c corresponding to the data packet 5, the packet 506 c corresponding to the data packet 6, and the packet 507 c corresponding to the data packet 7, it is confirmed that these packets are following the Strict Order. Immediately after the receipt, corresponding packets 501 d, 502 d, 505 d, 506 d, 507 d are output to the upper layer.

[0093] Only if the Strict Order is not being followed, the successfully received data packets are stored in the receipt buffer 101. The timer is monitored, and so are the expiration times the data packets stored in the receipt buffer 101. Immediately before each expiration time passes, the associated data packet is output to the upper layer. In the FIG. 4 example, the data packet 4 (packet 504 c 1 in the receiving station MAC Layer) is not following the Strict Order.

[0094] The foregoing data flow control enables the data packet 4 to be output to the upper layer before the expiration time in the receiving station even when, for example, the data packet 3 has not been successfully received by the receiving station. Also, the control enables the receiving station to know more precisely that the data packet 3 has expired. Further, the upper layer can take more time in data processing, because the upper layer receives the data immediately after the data is received by the receiving station.

[0095] In other words, the transmitting station specifies an expiration time for each data packet, and the receiving station monitors the specified expiration time, so that the received data packets are sequentially (Strict Order) output to the upper layer without wasting the packets even when the receiving station receives the packets in a different sequence.

[0096] Note however that time stamping in absolute time in this manner requires a separate mechanism providing a common absolute time to the transmitting station and the receiving station. For example, the transmitting station may regularly transmits the current time so that the receiving station receives that information, and on the receipt synchronizes itself to the time given by the transmitting station.

[0097] (Embodiment 3)

[0098] The following will describe a further embodiment of the present invention with reference to figures. Here, for convenience, features of the present embodiment that have similar functions as features of one or more of the foregoing embodiments, and that were mentioned in that embodiment are indicated by the same reference numerals and description thereof is omitted.

[0099] Embodiments 1, 2 described data packets with a time stamp field using absolute time. The present embodiment will describe data packets with an expiration-time-recording stamp field using relative time.

[0100]FIG. 6 shows, with absolute time on the horizontal axis, a time when a data packet is input from the transmitting station upper layer to the MAC Layer, a time when the data packet is transmitted for the first time from the transmitting station MAC Layer, a time when the data packet is transmitted for the second time from the transmitting station MAC Layer, and the expiration time for the data packet.

[0101] The transmitting station records a relative time 602 as a relative expiration time in a time stamp field of a data packet. The relative time 602 is calculated by subtracting the time when a first transmission of the data packet is started from the expiration time of the packet. If the first transmission fails, the packet is transmitted for the second time. In that case, a relative time 603 calculated by subtracting the time when a second transmission is started from the expiration time is recorded as a relative expiration time in the time stamp field. That is, the time stamp field is rewritten for every retransmission.

[0102] The receiving station recognizes and manages the sum of the relative expiration time recorded in the time stamp field and the time when the data packet is received as the expiration time for the data packet.

[0103] If a wireless transmission delay or an error correction delay is large, these delays may be subtracted in advance from the relative expiration time.

[0104] (Embodiment 4)

[0105] The following will describe a further embodiment of the present invention with reference to figures. Here, for convenience, features of the present embodiment that have similar functions as features of one or more of the foregoing embodiments, and that were mentioned in that embodiment are indicated by the same reference numerals and description thereof is omitted.

[0106] Embodiments 1 through 3 described the addition of expiration time information in a data packet transmission from the transmitting station MAC Layer to the receiving station MAC Layer. The process is not limited to the MAC Layers, and may be implemented for any layer. For example, the use of expiration time information in a data packet transfer from the transmitting station upper layer (LLC layer) to the transmitting station MAC Layer or from the receiving station MAC Layer to the receiving station upper layer (LLC layer) determines the expiration time for the packet.

[0107] (Embodiment 5)

[0108] Embodiments 1 through 3 described expiration time information of data packets in terms of a point in time. The information may be alternatively expressed using another variable. An example is the number of transmission cycles. When this is the case, for example, the Sequence Number of the transmission cycle and the number of transmission cycles indicating the expiration time are recorded in the time stamp field.

[0109] Alternatively, the expiration time information may be expressed using a number indicated by a counter. In this case, for example, the accumulated counter reading and a counter reading indicating an expiration time are recorded in the time stamp field. The counter may alternatively count the number of Superframes or TimeUnits.

[0110] As a further alternative, the expiration time information may be expressed using the number of retransmissions, in which case for example, the number of transmissions or retransmissions of the data packet, as well as the number of retransmissions indicating the expiration time, are recorded in the time stamp field.

[0111] The expiration time information may also be expressed using the number of packets, in which case for example, the total number of packets to be sent before the expiration time is recorded in the time stamp field.

[0112] In addition, the expiration time information may be expressed using the packet's Sequence Number, in which case for example, the Sequence Number of a packet which will expire is recorded in the time stamp field.

[0113] (Embodiment 6)

[0114] The foregoing embodiments described typical cases where expiration times were calculated in the same manner for all data packets, thus specifying the same lifetime for all data packets. Alternatively, the lifetime, that is, the expiration time, may be determined variably from one data packet to another on the basis of an application data transfer rate, the precision of the timers in the transmitting station and the receiving station, the transmission buffer capacity of the transmitting station, and the receipt buffer capacity of the receiving station.

[0115] For example, when data quantity changes over a period of time as is the case with MPEG VBR (Variable Bit Rate), the time for which data can be held in the transmitting and receiving station buffers is variable. In other words, the lifetime varies depending on the available space in the transmitting and receiving station buffers. The expiration time is therefore set to an early value at a high bit rate and a late value at a low bit rate.

[0116] (Embodiment 7)

[0117] The following will describe a further embodiment of the present invention with reference to figures. Here, for convenience, features of the present embodiment that have similar functions as features of one or more of the foregoing embodiments, and that were mentioned in that embodiment are indicated by the same reference numerals and description thereof is omitted.

[0118] The foregoing embodiments described examples where expiration time information is specified for input data packets. In the present embodiment, the transmitting station MAC Layer rearrange divide or merge input data from the upper layer into different packets for transmission. The following will describe an example as to how to specify expiration time information in relation to such a process.

[0119]FIG. 8 is a flow chart illustrating expiration time specifying procedures in accordance with the present embodiment. First, in step 1 (hereinafter, “S1), data to be transmitted is input from the transmitting station upper layer to the transmitting station MAC Layer. The transmitting station MAC Layer then records the input time from the transmitting station upper layer (S2) and packetizes the input data (S3).

[0120] In S4, it is determined whether all the input data has been packetized. If the packetization has not completed, (NO in S4), more data is read (S5), packetized (S6), and the process returns to S4. If the packetization has completed (YES in S4), an expiration time is calculated in the packetization based on the input time of the first input data, and the resultant value is recorded in the time stamp field of the generate data packet (S7). The data packet is then transmitted to the receiving station (S8), which ends the process.

[0121]FIG. 7 illustrates an example as to how to specify expiration time information, whereby data sets, i.e., a data set 1 (801 a), a data set 2 (802 a), a data set 3 (803 a), a data set 4 (804 a), a data set 5 (805 a), and a data set 6 (806 a), are input from the transmitting station upper layer to the transmitting station MAC Layer. In the MAC Layer, the data sets are divided into groups each including a predetermined number of data sets as a packet.

[0122] More specifically, out of the input data sets from the upper layer, the data sets 1, 2, 3 form a single packet. An expiration time is calculated for the packet based on the input time of one of the data sets 1, 2, 3 which was the first to be input from the upper layer. The expiration time information is recorded in the time stamp field 810 b of the packet containing the data sets 1, 2, 3 for transmission to the receiving station. The same approach applies to the data sets 4, 5, 6: a packet is generated with a time stamp field 811 b in which is recorded an expiration time calculated based on the earliest input time of the data sets.

[0123] Now, reasons will be presented why the expiration time is calculated based on the time information of the data set which was input before the other sets. Supposing that the expiration time had been calculated based on the time information of a data set which was input after the other sets (for example, data set 3), the data sets 1, 2 would have already expired immediately after the expiration of the data set 3 in the receiving station. In other words, by calculating expiration times based on the time information of the time set which was the first to be input, can the expiration times for the data sets in the associated data packet managed suitably.

[0124] In the example, a single expiration time was specified for data sets making up a packet. Alternatively, data packet identity information sets and expiration time information sets may be specified for one packet. Identity information is used to explicitly depict which expiration time belongs to which data set. In the foregoing example, identity information sets and expiration times may be recorded for the respective packets 801 a, 802 a, 803 a as the time stamp 810 b; when this is the case, the expiration time and identity information set for each data set is managed together for use in discriminating between the expiration times of the data sets. The identity information and expiration time information associated with a data set may be appended at any position, which by no means limits the present invention. For example, the information may be appended to the head of each data set, the end of the packet, or the head of the packet as with 810 b.

[0125] A transmitting station carrying out the foregoing process is realized by a similar arrangement to the one shown in FIG. 1. The foregoing described an example in which data sets input from the upper layer to the MAC Layer are merged into one packet. Alternatively, a data set input from the upper layer to the MAC Layer may be divided into multiple packets, which is also realized by a similar process similar to the foregoing one.

[0126] (Embodiment 8)

[0127] The following will describe a further embodiment of the present invention with reference to figures. Here, for convenience, features of the present embodiment that have similar functions as features of one or more of the foregoing embodiments, and that were mentioned in that embodiment are indicated by the same reference numerals and description thereof is omitted.

[0128] The foregoing embodiments described the expiration time information of a data packet being recorded in that data packet for transmission. The expiration time information of a data packet is however not necessarily recorded in that data packet. The present embodiment notifies of an expiration time for any given data packet by (i) incorporating other data in a data packet and sending expiration time information for multiple data packets and/or (ii) transmitting a packet containing identity information identifying transmitted data packets and expiration time information corresponding to the data packets. In this case, these methods are realized by the transmitting station transmitting to the receiving station a packet containing expiration times for the data packets, a packet containing identity information of valid data packets, or conversely, a packet containing identity information of expired data packets

[0129]FIG. 10 is a flow chart illustrating a transmission of expiration time information in accordance with the present embodiment. First, in S11, data to be transmitted is input from the transmitting station upper layer to the transmitting station MAC Layer. The transmitting station MAC Layer then records the input time from the transmitting station upper layer (S12) and packetizes the input data (S13).

[0130] In following S14, the generated data packets are transmitted. Note that no expiration time information is sent here. In S15, it is determined whether the transmitted data packets have reached a certain quantity. If there is a data packet yet to be transmitted completely (NO in S15), the process is repeated starting from S11.

[0131] If the transmitted data packets have reached a certain quantity (YES in S15), identity information of the one or more transmitted data packets is collected, and expiration times are calculated based on time information stored regarding corresponding data packets (S16). The identity information and the expiration time information are merged and packetized (S17), with the resulting packets being transmitted to the receiving station as an expiration time information packet (S18).

[0132] A packet containing expiration times for the transmitted data packets must be sent to the receiving station before the earliest expiration time is reached. FIG. 9 shows an example as to how to specify expiration time information, whereby data sets, i.e., a data set 1 (1001 a), a data set 2 (1002 a), a data set 3 (1003 a), a data set 4 (1004 a), a data set 5 (1005 a), and a data set 6 (1006 a) are input from the transmitting station upper layer to the transmitting station MAC Layer. Data packets are transmitted from the transmitting station MAC Layer to the receiving station without expiration time information being specified.

[0133] After the transmitted data packets (three data packets in this example) have reached a certain quantity, expiration time information calculated based on the transmission time information of one of the data packets transmitted so far which was transmitted at the earliest time is packetized together with the identity information of the packet. The generated packet is then transmitted to the receiving station as expiration time information packets 1010 b, 1011 b. The receiving station analyzes the expiration time information packets to find expiration times for the data packets.

[0134] In the foregoing example, a single piece of expiration time information was appended for multiple expiration time information packets. Alternatively, packet identity information and expiration time information for multiple packets may be contained in an expiration time information packet. For example, in the foregoing example, 1010 b may contain identity information of packets 1001, 1002, 1003 and expiration times for the packets.

[0135] A transmitting station carrying out the foregoing process is realized by a similar arrangement to the one shown in FIG. 1. The quantity of the packet may be set to a certain value in a communications system. Alternatively, the transmitting station keep transmitting data packets until the receiving station requests expiration time information, at which time the transmitting station transmits expiration time information for the data packet transmitted up to that time.

[0136] (Embodiment 9)

[0137] In the foregoing embodiments, expiration times for data packets were managed by the transmitting station. This is not necessary. In the present embodiment, the expiration times are managed by the receiving station. In other words, for example, when the receiving station has determined that a data packet is no longer valid, the receiving station sends the identity information of the invalid data packet to the transmitting station to notify that the data packet has expired. When this is the case, the transmitting station stops retransmission of the data packet reportedly no longer valid and clears the data stored in the transmission buffer 104 in the transmitting station.

[0138] A process in the receiving station in accordance with the present embodiment will be described in reference to the flow chart in FIG. 12. First, when a data packet containing identity information is received from the transmitting station in S21, expiration times are calculated based on the receipt time, and expiration times for the data packets are managed. The data packets in the receipt buffer 101 are checked for validity as necessary (S22). If a data packet is determined to have expired, the data packet is output to the receiving station upper layer. Thereafter, it is determined in S23 whether S21 and S22 have been carried out for a predetermined period of time. If the predetermined period has not elapsed yet, S21 and S22 are repeated.

[0139] On the other hand, if the answer is YES in S23, in other words, if it is determined in S23 that S21 and S22 have been carried out for a predetermined period, the identity information of the data packet which is no longer valid and output to the receiving station upper layer is collected in S24. Thereafter, the collected identity information is packetized (S25) and transmitted to the transmitting station as an expiration time information packet (S26).

[0140] Upon receipt of the expiration time information packet, the transmitting station discards the data packet identified by the identity information contained in that information packet from the transmission buffer 104.

[0141] Next, an example of the data packet flow in accordance with the present embodiment will be described with reference to FIG. 11. The data packets 1 (1201 a), 2 (1202 a), 3 (1203 a) generated in the transmitting station upper layer are transmitted from the transmitting station MAC Layer to the receiving station as packets 1201 b, 1202 b, 1203 b. The receiving station receives them as packets 1201 c, 1202 c, 1203 c.

[0142] The receiving station transmits, to the transmitting station, information on the data packet which is no longer valid and output to the upper layer in the receiving station. In the figure, the information is indicated as an expiration time information packet 1210 c. The expiration time information packet 1210 c contains information that no data packet has expired, because none of data packets is yet to expire and be output to the upper layer when the expiration time information packet 1210 c is transmitted.

[0143] Similarly, the data sets 4, 5, 6 are received by the receiving station MAC Layer as packets 1204 c, 1205 c, 1206 c. When the data sets 4, 5, 6 have expired, the data sets are output to the receiving station upper layer as packets 1204 d, 1205 d, 1206 d. When the expiration time information packet 1211 c is transmitted to the transmitting station, the data packets 1, 2, 3 have already expired and output to the receiving station upper layer. Therefore, the expiration time information packet 1211 c containing identity information of the data packets 1, 2, 3 is transmitted to the transmitting station.

[0144] Upon receipt of the expiration time information packet from the receiving station, the transmitting station recognizes that the data packet identified by the identity information contained in the expiration time information packet has expired and clears the corresponding data packet from the transmission buffer 104.

[0145] The foregoing described an example whereby the receiving station transmits expiration time information to the transmitting station for every three data packets. The expiration time information may be transmitted at any interval. For example, the expiration time information may be transmitted: at a certain cycle based on the predetermined number of data packets, Superframes, or TimeUnits; when the transmitting station has requested a transmission of the expiration time information; or when the receipt buffer 101 in the receiving station has become full.

[0146] (Embodiment 10)

[0147] In embodiment 9, the validity of a data packet received by the receiving station from the transmitting station was determined through comparison of the expiration time information of the data packet to a time. The receiving station however may use the various approaches to expiration time management as described in embodiment 5 to determine validity and send expiration time information to the transmitting station.

[0148] The receiving station may manage expiration time information of rearranged data packets as described in embodiment 7, in which case the receiving station determines the validity of the rearranged data packets as described as an example in embodiment 7.

[0149] The expiration time information may be included in a DELAYED-ACK transmitted from the receiving station to the transmitting station.

[0150] Expiration times were calculated and appended by the transmitting station in the foregoing examples. Expiration times may be calculated by the receiving station, in which case information on devices, etc. needs to be exchanged in advance between the transmitting station and the receiving station.

[0151] Identity information may be created so that, for example, the information identifies each invalid data packet, identifies a single packet while giving an indication that all the preceding packets are invalid, or identifies a range of invalid data packets.

[0152] The aforementioned expiration time calculation method examples and identity information designation method examples may be used in combination.

[0153] The expiration time information specifying methods described in the embodiments may be implemented in any given combination.

[0154] The invention being thus described, it will be obvious that the same way may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.

Industrial Applicability

[0155] The packet communications method, communications system, communications device, and communications program in accordance with the present invention can be used in a network of communications devices carrying out packet communications. Examples include a communications network involving a wireless LAN. A preferable application example is a communications network for video streaming. 

1. A packet communications method, characterized in that it comprises the step of transmitting a packet containing expiration time information for the packet or for a body of the packet either in the body or in a header of the packet.
 2. A packet communications method, characterized in that it comprises the step of, when receiving a packet containing expiration time information for the packet or for a body of the packet either in the body or in a header of the packet, determining an expiration time for the packet based on the expiration time information.
 3. The packet communications method as set forth in either one of claims 1 and 2, wherein either the header or body of the packet to be transmitted contains expiration time information for that packet and/or for a body of the packet.
 4. A packet communications method, characterized in that either a header or a body of a packet to be transmitted contains expiration time information for another packet and/or for a body of the other packet.
 5. The packet communications method as set forth in claim 2, wherein the received packet is buffered up to a point in time immediately before the expiration time for the packet, so that data in the packet is output to an upper layer before the expiration time for the packet.
 6. The packet communications method as set forth in claim 2, wherein data in the packet is output to an upper layer immediately after the packet is received, if the packet is following a transmission sequence.
 7. A communications system including a transmitting station transmitting packets and a receiving station receiving packets, said system being characterized in that the transmitting station includes: packet generating means for converting data to be transmitted to a predetermined packet; expiration time calculating means for calculating an expiration time for at least part of data in the packet; and expiration time appending means for appending expiration time information on the expiration time to the packet, and the receiving station includes expiration time determining means for determining expiration time for the packet on the basis of the expiration time information in a received packet.
 8. The communications system as set forth in claim 7, wherein in the transmitting station: the packet generating means converts one or more sets of data to one packet; and the expiration time appending means appends to the packet the expiration time information and identity information for one of the sets of data corresponding to the expiration time information, and in the receiving station: the expiration time determining means determines expiration time for the data in the packet on the basis of the expiration time information and the identity information in a received packet.
 9. A communications system including a transmitting station transmitting packets and a receiving station receiving packets, said system being characterized in that the transmitting station includes: packet generating means for converting data to be transmitted to a predetermined packet; expiration time calculating means for calculating an expiration time for at least part of data in the packet; and expiration time packet generating means for generating an expiration time information packet containing expiration time information on the expiration time and identity information for data corresponding to the expiration time information, and the receiving station includes expiration time determining means for determining expiration time for a received packet on the basis of the expiration time information in a received expiration time information packet.
 10. The communications system as set forth in any one of claims 7 through 9, wherein in the transmitting station, the expiration time information is defined in terms of absolute time.
 11. The communications system as set forth in any one of claims 7 through 9, wherein in the transmitting station, the expiration time information is defined in terms of relative time starting at a time when a packet is transmitted.
 12. The communications system as set forth in any one of claims 7 through 9, wherein in the transmitting station, the expiration time information defined in terms of a packet retransmission count.
 13. The communications system as set forth in any one of claims 7 through 9, wherein in the transmitting station, the expiration time information is defined in terms of a predetermined unit count.
 14. The communications system as set forth in any one of claims 7 through 9, wherein in the transmitting station, the expiration time information is defined in terms of Sequence Number.
 15. The communications system as set forth in any one of claims 7 through 9, wherein in the receiving station, the received packet is buffered up to a point in time immediately before an expiration time for the packet, so that data in the packet is output to an upper layer before the expiration time for the packet.
 16. The communications system as set forth in any one of claims 7 through 9, wherein in the receiving station, data in the packet is output to an upper layer immediately after the packet is received, if the received packet is following a transmission sequence.
 17. The communications system as set forth in any one of claims 7 through 9, wherein in the receiving station: if a transmission sequence is not being followed, the received packet is held up to a point in time immediately before an expiration time for the packet; and if, at the point in time, there is a packet yet to be received which precedes the received packet in the transmission sequence, the receipt of the yet-to-be-received packet is given up, and the soon-to-expire packet is output to an upper layer.
 18. The communications system as set forth in any one of claims 7 through 9, wherein: the transmitting station further includes a transmission buffer buffering incoming transmitted data and a timer managing time; and the receiving station further includes a receipt buffer buffering received data in the received packet and a timer managing time, wherein the expiration time information is defined in terms of an item set forth in any one of claims 10 through 14 which is changed on the basis of at least any one of a capacity of the transmission buffer, a capacity of the receipt buffer, accuracy of the timers of the transmitting station and the receiving station, and a type of the transmitted data.
 19. A communications device, comprising a transmitting station provided in the communications system as set forth in any one of claims 7 through
 18. 20. A communications device, comprising a receiving station provided in the communications system as set forth in any one of claims 7 through
 18. 21. A communications device connected to a communications system, said device being characterized in that it comprises: a transmission buffer buffering incoming transmitted data; a timer managing time; a time stamp generator generating an expiration time for a packet to be transmitted in the form of a time stamp; a packet processor packetizing the data to be transmitted and the time stamp; and a protocol controller transmitting the packet generated by the packet processor.
 22. A communications device connected to a communications system, said device being characterized in that it comprises: a protocol controller receiving a packet from an external communications device; a packet processor dividing the received packet into received data and a time stamp and associating the data and the stamp; a receipt buffer buffering the received data; and a time stamp analyzer analyzing the time stamp so as to instruct for an output of the received data from the receipt buffer to an upper layer when an output time for the received data corresponding to the time stamp has come.
 23. The communications device as set forth in any one of claims 19 through 22, said device being realized by a MAC Layer.
 24. The communications system as set forth in any one of claims 7 through 18, said system being realized according to the IEEE 802.11 standard.
 25. A communications program causing a computer to implement a process performed by the transmitting station or the receiving station of the communications system as set forth in any one of claims 7 through
 18. 26. A storage medium containing a communications program causing a computer to implement a process performed by the transmitting station or the receiving station of the communications system as set forth in any one of claims 7 through
 18. 27. The packet communications method as set forth in either one of claims 1 and 2, wherein the expiration time information is specified according to a period of time from inputting of the packet from an upper layer of the transmitting station to outputting of the packet to an upper layer of the receiving station.
 28. The communications system as set forth in either one of claims 7 and 9, wherein the expiration time information is specified according to a period of time from inputting of the packet from an upper layer of the transmitting station to outputting of the packet to an upper layer of the receiving station. 